const { spawn } = require('child_process');
const path = require('path');

console.log('🚀 启动 DevOps BI 项目...\n');

// 启动后端服务
console.log('📦 启动后端服务 (端口: 3001)...');
const backend = spawn('npm', ['run', 'start:dev'], {
  cwd: path.join(__dirname, 'services/devops-server'),
  stdio: 'inherit',
  shell: true
});

// 等待2秒后启动前端服务
setTimeout(() => {
  console.log('\n🌐 启动前端服务 (端口: 9004)...');
  const frontend = spawn('npm', ['run', 'dev'], {
    cwd: path.join(__dirname, 'apps/react-devops'),
    stdio: 'inherit',
    shell: true
  });

  // 处理前端进程退出
  frontend.on('close', (code) => {
    console.log(`\n❌ 前端服务已停止 (退出码: ${code})`);
    backend.kill();
  });
}, 2000);

// 处理后端进程退出
backend.on('close', (code) => {
  console.log(`\n❌ 后端服务已停止 (退出码: ${code})`);
});

// 处理进程中断信号
process.on('SIGINT', () => {
  console.log('\n🛑 正在停止所有服务...');
  backend.kill();
  process.exit(0);
});

console.log('\n📋 服务信息:');
console.log('   前端: http://localhost:9004');
console.log('   后端: http://localhost:3001');
console.log('   API测试: http://localhost:9004/test-api');
console.log('\n按 Ctrl+C 停止所有服务\n'); 